package Noeud;

import java.util.Vector;

import Objet.ListeObjets;

public class Noeud_Default extends Noeud {

	public Noeud_Default(ListeObjets c, ListeObjets r, ListeObjets v, int m) {
		super(c, r, v, m);
	}

	@Override
	public int compareTo(Object n) {
		if (this.evaldefaut < ((Noeud) n).evaldefaut) {
			return 1;
		} else
			if (this.evaldefaut == ((Noeud) n).evaldefaut) {
				return 0;
			} else {
				return -1;
			}
	}

	@Override
	public void separe() {
		this.listefils = new Vector<Noeud>();
		if (this.statut == 1) {
			ListeObjets cg, rg, vg, cd, rd, vd;
			Noeud filsgauche, filsdroit;

			this.frontiere = this.choisirFrontiere();

			cg = this.choisis.duplique();
			cg.ajout(this.frontiere);
			cd = this.choisis.duplique();
			rg = this.rejetes.duplique();
			rd = this.rejetes.duplique();
			rd.ajout(this.frontiere);
			vg = this.variables.duplique();
			vg.retireobjet(this.frontiere);
			vd = vg.duplique();

			filsgauche = new Noeud_Default(cg, rg, vg, this.methodeFrontiere);
			filsdroit = new Noeud_Default(cd, rd, vd, this.methodeFrontiere);

			filsgauche.traitenoeud();
			filsdroit.traitenoeud();
			filsgauche.traitenoeud();

			this.listefils.add(filsgauche);
			this.listefils.add(filsdroit);
		}
		this.statut = 0;
	}
}
